#ifndef NANE_SOUNDCODECSYSTEM_H
#   define  NANE_SOUNDCODECSYSTEM_H

#   include "nane/CodecSystem/Sound/ISoundCodecSystem.h"
#   include "nane/core/crt/FileSystem.h"
#   include "nane/core/SubSystem.h"

#   include "nane/CodecSystem/Sound/SoundDecoder.h"

namespace nane 
{
    
    class SoundCodecSystem
        : public SubSystem<ISoundCodecSystem>
    {
    public:
        SoundCodecSystem();
        ~SoundCodecSystem();
        
    public:
        const char* GetFileType();
        SoundDecoder CreateDecoder( const InputPtr& _input );
        SoundDecoder CreateDecoder( const InputSeekablePtr& _input );
        SoundDecoder CreateDecoder( const ReadFilePtr& _file );
        
    public:
        class Implementation;
        Implementation* m;
    };
}   // namespace nane

#endif	// NANE_SOUNDCODECSYSTEM_H
